﻿//===============================================================================
// Microsoft patterns & practices
// Guidance Explorer Offline Client
//===============================================================================
// Copyright  Microsoft Corporation.  All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===============================================================================



using System.Collections.Generic;
using System.ComponentModel;
using System.IO;

namespace GuidanceExplorer.Model
{
	/// <summary>
	/// Represents the list of folders and views assosiated with the solution.
	/// </summary>
	public class SolutionViews : FolderStructure
	{
		/// <summary>
		/// Factory.
		/// </summary>
		public static SolutionViews New()
		{
			return new SolutionViews();
		}

		/// <summary>
		/// The name of the file that defines this library.
		/// </summary>
		private FileInfo _sourceFileName;

		/// <summary>
		/// Private default constructor.
		/// </summary>
		private SolutionViews()
		{
		}

        ///// <summary>
        ///// The name of the file that defines this solution.
        ///// </summary>
        //public FileInfo SourceFileInfo
        //{
        //    get { return _sourceFileName; }
        //    set { _sourceFileName = value; }
        //}

        [Browsable(true)]
        [ReadOnly(true)]
        public string SolutionName { get; set; }

        [Browsable(false)]
        public override bool CopyItemsByValue
        {
            get
            {
                return true;
            }
        }

		/// <summary>
		/// The folder where the guidances of the solution are
		/// </summary>
        [Browsable(true)]
        [ReadOnly(true)]
        public DirectoryInfo SolutionGuidanceFolder { get; set; }
		
		/// <summary>
		/// The folder where the solution file is
		/// </summary>
        [Browsable(true)]
        [ReadOnly(true)]
        public DirectoryInfo SolutionFolder { get; set; }

		private List<GuidanceItemFileReference> _itemsToDelete = new List<GuidanceItemFileReference>();

		/// <summary>
		/// The list of items that has been deleted from the UI.
		/// </summary>
        [Browsable(false)]
        public List<GuidanceItemFileReference> ItemsToDelete
		{
			get{ return _itemsToDelete;}
		}

    }
}

